package clazz.initclass;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author 李栋
 * @version 1.0.0
 * @className InitClassChild.java
 * @createTime 2021年07月22日 22:39:00
 */
class InitClassChild extends InitClassParent {


    private static final Logger logger = LoggerFactory.getLogger(InitClassParent.class);

    /**
     * 执行顺序：静态代码块，初始化块
     */

    //静态变量
    public static final String STATIC_FIELD = "子静态变量";

    //变量
    public String field = "==子普通变量==";

    static {
        logger.info(STATIC_FIELD);
        logger.info("子静态代码块！");
    }

    {
        logger.info(field);
        logger.info("子初始化块！");
    }


    public InitClassChild() {
        logger.info("子构造方法！");
    }

    public static void main(String[] args) {
        new InitClassChild();
    }
}


class InitClassParent {

    private static final Logger logger = LoggerFactory.getLogger(InitClassParent.class);

    /**
     * 执行顺序：静态代码块，初始化块
     */

    //静态变量
    public static final String STATIC_FIELD = "父静态变量";

    //变量
    public String field = "==父普通变量==";

    static {
        logger.info(STATIC_FIELD);
        logger.info("父静态代码块！");
    }

    {
        logger.info(field);
        logger.info("父初始化块！");
    }

    public InitClassParent() {
        logger.info("父构造方法！");
    }

}